1. Field of the Invention
The present invention relates generally to trace visualization schemes using multiple time-space diagrams (Gantt charts), and more particularly to a novel system and method for generating and visualizing multi-dimensional trace files using various views from different aspects.
2. Description of the Prior Art
The reason for poor performance of a program such as a Web server or a Message Passing Interface (MPI) program can be varied and complex, and users need to be able to understand and correct performance problems. Performance tools can help by monitoring a program's execution and producing performance data that can be analyzed to locate and understand areas of poor performance.
One common way of monitoring a program's behavior is to generate trace events while executing the program. Trace data collected during program execution may then be used for debugging, visualization, and understanding the program's behavior. As the size of a trace file may be big and manual examination of large trace files extremely time-consuming, it is common that visualization tools are used to show performance data over time along with various statistic results.
Time-space diagrams (i.e., Gantt charts) are probably the most powerful ones among the diagrams that show performance trace data over time. In a two-dimensional time-space diagram, time is used as one axis while the other axis is organized according to a significant discriminator. A number of timeliness are shown, one for each unique entity of the significant discriminator. We use the term “X-Y View” for a time-space diagram with X as the significant discriminator and Y as legends. For example, a “Thread-Activity View” is a time-space diagram that displays activities using various color or graphic objects to represent various program states or record types (i.e. the legends) along its timelines, one for each thread (i.e., the significant discriminator). Such a diagram displays program states or record types over time, giving clear indication on program activities for any given point in time.
Existing visualization tools for program execution have at most one such time-space diagram. For example, the AIMS [1] toolkit such as described by J. Yan a reference entitled “Automated Instrumentation and Monitoring System,” (http://science.nas.nasa.gov/Software/AIMS) has one Thread-Activity View (the OverVIEW) along with other statistic or animated displays for message passing activities. The Nupshot visualization tool such as described by E. Karrels and E. Lusk in a reference entitled “Performance Analysis of MPI Programs,” Proceedings of the Workshop on Environments and Tools for Parallel Scientific Computing,” 1994, and its follow-on Jumpshot described by O. Zaki, W. Gropp, E. Lusk, and D. Swider in a reference entitled “Scalable Performance Visualization with Jumpshot,” International Journal of Supercomputer Applications and High Performance Computing, vol. 13, no. 3, pp. 277–288, 1999 each also have one Thread-Activity View as its main window, plus bar charts for legend histograms. A product called Vampir (e.g., version 2.5, Pallas product, http://www.pallas.de/pages/vampir.htm) is a commercial toolkit for visualization and analysis of MPI programs that also provides only one Thread-Activity View, along with its source code browser, animated communication matrix, and pie charts for statistics. The Pablo Analysis graphical user interface (GUI) of the Pablo project such as described by D. Reed et al. in a reference entitled “Scalable Performance Analysis: The Pablo Performance Analysis Environment,” Proceedings of the Scalable Parallel Libraries Conference, pp. 104–113, October 1993 (http://www-pablo.cs.uiuc.edu) is a toolkit of modules capable of processing its Self-Defining Data Format (SDDF) records to calculate statistics such as counts, sums, ratios, maximums, minimums, etc. This SDDF format is described in greater detail in a reference by R. Aydt entitled “The Pablo Self-Defining Data Format,” Technical Report, Department of Computer Science, University of Illinois, March 1992, revised April 1995. Unfortunately, there is no time-space diagrams available in Pablo. Although the Pablo project is famous with its SDDF format, the lack of time-space diagrams is clearly one of its deficiencies.
It would be highly beneficial to provide the capability to generate multi-dimensional program trace files and enabling generation of multiple time-space diagrams (Gantt charts) from the multi-dimensional trace files.
It would be further highly desirable to provide the capability of generating many other two-dimensional time-space diagrams that can help users understand a program's behavior, such as: Processor-Activity View, Thread-Processor View, Processor-Thread View, and Activity-Thread View. Obviously, multiple Gantt chart visualization provides multiple time-space diagrams from various aspects of the same trace file and therefore helps users understand a program's behavior.